home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 147
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin
/
docs
/
ippon
/
xsptest2
/
xsptest2.c
< prev
next >
Wrap
C/C++ Source or Header
|
2000-07-07
|
2KB
|
84 lines
/* xsptest2.c */
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <sys/iocs.h>
#include "XSP2lib.H"
#define PCG_MAX 32 /* パターンデータの個数 */
#define FRM_MAX 128 /* フレームデータの個数 */
#define REF_MAX 128 /* リファレンスデータの個数 */
static char pcg_alt[PCG_MAX + 1]; /* PCG配置管理テーブル */
static char pcg_dat[PCG_MAX * 128]; /* PCGデータファイル読み込みバッファ */
static XOBJ_REF_DAT ref_dat[REF_MAX]; /* リファレンスデータ */
static XOBJ_FRM_DAT frm_dat[FRM_MAX]; /* フレームデータ */
static unsigned short pal_dat[16][15]; /* パレットデータ */
int main (int argc, char *argv[])
{
FILE *fp;
int i, j, r;
_iocs_crtmod (10); /* 256x256ドット グラフィック画面 256色 2画面 */
_iocs_sp_init (); /* スプライトの初期化 */
_iocs_sp_on ();
/* pcg_dat にパターンデータを読み込む */
fp = fopen ("PLAYER.XSP", "rb");
fread (pcg_dat, sizeof (char), PCG_MAX * 128, fp);
fclose (fp);
/* frm_dat にフレームデータを読み込む */
fp = fopen ("PLAYER.FRM", "rb");
fread (frm_dat, sizeof (XOBJ_FRM_DAT), FRM_MAX, fp);
fclose (fp);
/* ref_dat にリファレンスデータを読み込む */
fp = fopen ("PLAYER.REF", "rb");
r = fread (ref_dat, sizeof (XOBJ_REF_DAT), REF_MAX, fp);
fclose (fp);
/* REF_DAT[].ptr 補正 */
for (i = 0; i < r; i++)
(int) ref_dat[i].ptr += (int) frm_dat;
/* pal_buf に一旦パレットデータを読み込む */
fp = fopen ("PLAYER.PAL", "rb");
fread (pal_dat, sizeof (unsigned short), 16 * 15, fp);
fclose (fp);
/* パレットデータを定義 */
/* (1パレットブロック=16色) × (15ブロックぶん) 定義する */
{
unsigned short *p = (unsigned short *) pal_dat;
for (i = 1; i < 15; i++)
for (j = 0; j < 16; j++)
_iocs_spalet (0x80000000 | j, i, *p++);
}
xsp_on ();
xsp_mode (3);
/* パターンデータを定義 */
xsp_pcgdat_set (pcg_dat, pcg_alt, sizeof (pcg_alt));
xsp_objdat_set (ref_dat);
/* 座標, 複合スプライトNo., パレット|優先順位 */
xobj_set (80 + 32 * 0, 144, 0, 0x073f);
xobj_set (80 + 32 * 1, 144, 1, 0x073f);
xobj_set (80 + 32 * 2, 144, 2, 0x073f);
xobj_set (80 + 32 * 3, 144, 3, 0x073f);
xobj_set (80 + 32 * 4, 144, 4, 0x073f);
xsp_out (); /* 表示 */
printf ("何かキーを押して下さい\n");
getche ();
xsp_off ();
_iocs_crtmod (16);
return (0);
}